其他
Python下载NCEP/NCAR再分析数据绘制高空图(附2021年7月中国乡镇行政区划shp)
1 Python下载NCEP/NCAR再分析数据
import cdsapi
c = cdsapi.Client()
c.retrieve(
'reanalysis-era5-pressure-levels',
{'product_type': 'reanalysis',
'format': 'netcdf',
'variable': [
'geopotential', 'relative_humidity', 'temperature',
'u_component_of_wind', 'v_component_of_wind',
],
'pressure_level': '700',
'year': '2020',
'month': '12',
'day': '16',
'time': '18:00',
},'test_era5.nc')
2 cartopy绘制高空图
# 作者:气象家园 Tobias
import numpy as np
import matplotlib.pyplot as plt
import xarray as xr
import maskout
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import cartopy.crs as ccrs
from cartopy.io.shapereader import Reader
import cmaps
from matplotlib import rcParams
config = {"font.family":'Times New Roman',"font.size":16,"mathtext.fontset":'stix'}
rcParams.update(config)
f=xr.open_dataset('F:/Rpython/lp36/test_era5.nc')
lon=f['longitude'][:]
lat=f['latitude'][:]
lons,lats=np.meshgrid(lon,lat)
z=f['z']*0.01
t=f['t']-273.15
r=f['r']
u=f['u']
v=f['v']
# 作图
region=[10,150,0,70]
proj=ccrs.PlateCarree()
fig=plt.figure(figsize=(16,9),dpi=600)
ax = plt.axes(projection=proj)
ax.set_extent(region,crs=proj)
h=ax.contour(lons,lats,z,transform=proj,linewidths=0.5,colors='k')
b=ax.barbs(lons[::8,::8],lats[::8,::8],u[::8,::8],v[::8,::8],transform=proj,
linewidth=0.25,barb_increments={'half':2,'full':4,'flag':20},
sizes=dict(spacing=0.1,width=0.1,emptybarb=0.02,height=0.35),length=3.5,zorder=5)
lev=np.arange(-30,20,5)
cs=ax.contourf(lons,lats,t,levels=lev,transform=proj,cmap=cmaps.NCV_bright,extend='both')
maskout(cs,ax,'F:/Rpython/lp35/data/shp2/yuan3.shp',1)
clip1=maskout.shp2clip(cs,ax,'F:/Rpython/lp35/data/shp2/yuan3')
cbar=plt.colorbar(cs,shrink=0.75,orientation='vertical',extend='both',pad=0.01,aspect=30) #orientation='horizontal'
cbar.set_label('Temperature/(℃)')
ax.add_geometries(Reader(r'F:/Rpython/lp35/data/shp2/yuan.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='red',linewidth=0.8)
ax.add_geometries(Reader(r'F:/Rpython/lp35/data/shp2/nineline.shp').geometries(),ccrs.PlateCarree(),facecolor='none',edgecolor='red',linewidth=0.8)
ax.set_xticks(np.arange(region[0],region[1]+1,20),crs=proj)
ax.set_yticks(np.arange(region[-2],region[-1]+1,10),crs=proj)
ax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label=False))
ax.yaxis.set_major_formatter(LatitudeFormatter())
ax.stock_img()
font3={'family':'SimHei','size':16,'color':'k'}
plt.title("2020年元朝NCEP/NCAR再分析数据高空分布图",fontdict=font3)
plt.ylabel("纬度",fontdict=font3)
plt.xlabel("经度",fontdict=font3)
plt.savefig('F:/Rpython/lp36/plot123.2.png',dpi=800,bbox_inches='tight',pad_inches=0)
plt.show()
中国现行的行政区划实行如下原则:
截止2014年,共统计六级行政区(数量):
(一级行政区)省级行政区共34个其中:23个省、5个自治区、4个直辖市、2个特别行政区;
(二级行政区)地级行政区共333个其中:11个地区、3个盟、30个自治州、289个市;
(三级行政区)县级行政区共2854个其中:1429个县、117个自治县、49个旗、3个自治旗、361个县级市、893个(市辖)区、1个林区、1个特区;
(四级行政区)乡级行政区共40497个其中:11626个乡、1034个民族乡、20117个镇、7566个街道、151个苏木、1个民族苏木、2个(县辖)区;
(五级行政区)村级行政区共N个其中行政村、社区;
(六级行政区)组级行政区共N个其中行政村村民小组、社区居民小组。
3 获取本文中国乡镇行政区划shp数据的途径:
气象水文科研猫公众号后台回复:
“2021年7月中国乡镇行政区划shp”,
获取百度云免费下载链接。